home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr47 / wasm223.zip / TSR1.ASM < prev    next >
Assembly Source File  |  1993-05-04  |  2KB  |  57 lines

  1. ;********************************;
  2. ; WASM TSR Support, Installation ;
  3. ; By Eric Tauck                  ;
  4. ;                                ;
  5. ; Defines:                       ;
  6. ;                                ;
  7. ;   Keep  install TSR            ;
  8. ;********************************;
  9.  
  10. ;========================================
  11. ; Macro to install a TSR.
  12. ;
  13. ; In: endloc= ending offset of TSR
  14. ;    (TSR_END is used if not specified).
  15.  
  16. Keep    MACRO   endloc
  17.  
  18. ;--- release environment
  19.  
  20.         IF TYPE(endloc)=TYPE(ax)
  21.         push    ax
  22.         ENDIF
  23.         mov     ah, 49H                 ;release memory function
  24.         mov     es, [002CH]             ;load segment
  25.         int     21H                     ;execute
  26.         IF TYPE(endloc)=TYPE(ax)
  27.         pop     ax
  28.         ENDIF
  29.  
  30. ;--- install
  31.  
  32.   IF TYPE(endloc)=TYPE(ax)
  33.         mov     dx, ax
  34.   ELSEIF TYPE(endloc)=TYPE(dx)
  35.     IF VALUE(endloc)=VALUE(dx)
  36.         mov     ax, dx
  37.     ELSE
  38.         mov     ax, endloc
  39.         mov     dx, ax
  40.     ENDIF
  41.   ELSE
  42.     IF TYPE(endloc)=TYPE()
  43.         mov     ax, OFFSET TSR_END
  44.     ELSE
  45.         mov     ax, OFFSET endloc
  46.     ENDIF
  47.         mov     dx, ax
  48.   ENDIF
  49.         mov     cl, 4                   ;bits to shift
  50.         shr     dx, cl                  ;convert to paragraph
  51.         test    al, 0FH                 ;check if round up
  52.         jz      _keep1                  ;skip if not
  53.         inc     dx                      ;round up
  54. _keep1  mov     ax, 3100H               ;terminate and remain resident
  55.         int     21H                     ;execute
  56.         ENDM
  57.